package com.thh.jedis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/*
目标： 使用jedis的连接池

jedis连接池有两个核心类：
      jedisConfig ：  连接池的配置文件对象，用于存储配置参数。比如： 最大链接个数，最大的等待时间..
     jedisPool ：  jedis的连接池核心类。


 */
public class Demo2 {

    public static void main(String[] args) {
        //jedis连接池的配置文件的对象
        JedisPoolConfig config = new JedisPoolConfig();
        //设置最大的链接个数
        config.setMaxTotal(10);
        //设置最大的等待时间 , 单位是毫秒
        config.setMaxWaitMillis(3000);



     /*   for (int i = 0; i < 10; i++) {
            Jedis jedis = jedisPool.getResource();
            System.out.println(jedis);
            if(i==9) {
                jedis.close();
            }*/


        //创建一个jedis的连接池
        JedisPool jedisPool = new JedisPool(config,"localhost",6379);

        //创建jedis的核心对象
        Jedis jedis =jedisPool.getResource();

        //操作String类型
       jedis.set("name","张三");
       System.out.println("获取："+ jedis.get("name"));
       jedis.del("name");
        System.out.println("获取："+ jedis.get("name"));


       // 操作list类型
       jedis.lpush("list","王五","李四","张三");
        System.out.println("list对象的内容："+ jedis.lrange("list",0,-1));
        //删除
        System.out.println("删除最后边的元素："+ jedis.rpop("list"));

        //操作完毕之后一定需要关闭资源
        if (jedis!=null){
            jedisPool.returnResourceObject(jedis);
        }

    }
}
